package les.portal.testes;

import junit.framework.TestCase;
import les.portal.negocio.dao.ProjetoDAO;
import les.portal.negocio.to.ProjetoTO;
import les.portal.util.HibernateUtil;

import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 * Teste para a classe ProjetoDAO.
 * @author Anne Caroline
 * @author Bruno Coitinho
 * @author Gustavo de Farias
 * @author Maria de Lourdes
 *
 * 
 */
public class ProjetoDAOTest extends TestCase {
	
	public void testReadAPartirDoTitulo() throws Exception {
		
		Session sessao = HibernateUtil.currentSession();
		ProjetoDAO projetoDAO = new ProjetoDAO(sessao);
		
		ProjetoTO projetoTO = new ProjetoTO();
		
		assertNull(projetoTO.getId());
		assertNull(projetoDAO.readAPartirDoTitulo("TESTE"));
		
		projetoTO.setTitulo("TESTE");
		projetoTO.setUrl("http://");
		projetoTO.setDescricao("MASSA");
		
		
		Transaction t = sessao.beginTransaction();
		
		Integer id1 = projetoDAO.create(projetoTO);
		t.commit();
		
		assertEquals(id1, projetoTO.getId());
		assertNotNull(projetoDAO.readAPartirDoTitulo("TESTE"));
		assertEquals(id1, projetoDAO.read(id1).getId());
		assertEquals("TESTE", projetoDAO.read(id1).getTitulo());
		assertEquals("MASSA", projetoDAO.read(id1).getDescricao());
		assertEquals("http://", projetoDAO.read(id1).getUrl());
		
		//remove
		t = sessao.beginTransaction();
		projetoDAO.delete(projetoTO);
		t.commit();
		assertNull(projetoDAO.readAPartirDoTitulo("TESTE"));
		
	}

}
